一、umask是什么?
- linux系统中,用户登录到系统中后,创建一个文件的时候,这个文件有一个默认的权限,该默认权限在linux中由umask这个命令来管理。
- 直接使用umask命令可以查看并修改当前shell中用户创建文件的缺省权限。即修改完后关闭该shell再重新开启shell会发现上次修改未起作用,这主要是由于还有一个系统默认的umask的设置,一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
-
umask的值实际上可以参考chmod的时候文件权限的数字值,但是umask是要“拿走”相应的位而已:
(1)文件的rwx权限对应的数字分别是4、2、1. (2)如果umask的值是0002,第一个0与特殊权限有关,暂时忽略,后边的002,每一位的含义分别讨论当前用户(u),当前所在的组(g),其他用户(o)等的权限,u的权限减去0为权限不变(rw-),g的权限减去0为权限不变(rw-),o的权限减去2为减去w权限(r--).
二、umask在业务中有什么用?
- 通常在程序中使用umask命令,比如php中有函数umask(0002),可以在当前程序中设置默认的创建文件的权限为rw-rw-r--,但是该程序结束后就会直接恢复原来的umask的值。
- 实际上umask就是为了设置默认的创建文件的权限,使用chmod也能实现相同的业务功能,所以,umask的关键词就是“默认权限”。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。